home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / daemons / mopd / mopd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-11-29  |  2.5 KB  |  93 lines

  1. /*
  2.  * MOP include file.
  3.  */
  4.  
  5. #ifdef ds3100
  6. #define SWAP2(x) ((((x)&0xff00)>>8)|(((x)&0x00ff)<<8))
  7. #define SWAP4(x) ((((x)>>24)&0xff)|(((x)&0x00ff0000)>>8)|(((x)&0x0000ff00)<<8)|(((x)&0x000000ff)<<24))
  8. #define UNSWAP2(x) (x)
  9. #define UNSWAP4(x) (x)
  10. #else
  11. #define SWAP2(x) (x)
  12. #define SWAP4(x) (x)
  13. #define UNSWAP2(x) ((((x)&0xff00)>>8)|(((x)&0x00ff)<<8))
  14. #define UNSWAP4(x) ((((x)>>24)&0xff)|(((x)&0x00ff0000)>>8)|(((x)&0x0000ff00)<<8)|(((x)&0x000000ff)<<24))
  15. #endif
  16.  
  17. #define PACKET_SIZE 1024
  18. #define BUF_LEN (PACKET_SIZE+64)
  19.  
  20. #define MOP_DEVICE "/dev/etherMOP"
  21. #define BOOT_DIR "/sprite/boot"
  22.  
  23. #define MOP_BROADCAST {0xab,0x00,0x00,0x01,0x00,0x00}
  24.  
  25. #define HDR_LEN 17
  26. typedef struct mopHdr {
  27.     struct ether_header header;
  28.     short        len;
  29.     unsigned char    code;
  30. } mopHdr;
  31.  
  32. #define MOP_LOAD_XFER    0
  33. #define MOP_LOAD    2
  34. #define MOP_REQ_DUMP    4
  35. #define MOP_ENTER    6
  36. #define MOP_REQ        8
  37. #define MOP_REQ_LOAD    10
  38. #define MOP_RUNNING    12
  39. #define MOP_DUMP    14
  40. #define MOP_REMOTE_11    16
  41. #define MOP_REMOTE_11A    18
  42. #define MOP_PARAM_LOAD_XFER    20
  43. #define MOP_LOOPBACK    24
  44. #define MOP_LOOP_DATA    26
  45.  
  46. #define MOPLOAD_LEN 5
  47. typedef struct mopLoad {
  48.     unsigned char    loadNum;    /* Load number for multiple images.  */
  49.     char        loadAddr[4];    /* Memory load address. */
  50. } mopLoad;
  51.  
  52. typedef struct mopReqDump {
  53.     char        memAddr[4];    /* Memory dump address. */
  54.     char        numLocs[2];    /* # locations to dump. */
  55. } mopReqDump;
  56.  
  57. typedef struct mopEnter {
  58.     char        passwd[4];    /* The mop password. */
  59. } mopEnter;
  60.  
  61. typedef struct mopReq {
  62.     unsigned char    devType;    /* Requesting system type. */
  63.     unsigned char    mopVer;        /* Version of MOP format. */
  64.     unsigned char    pgmType;    /* Type of program requested. */
  65.     unsigned char    softIDLen;    /* Request identifier. */
  66.     char             softID;
  67. } mopReq;
  68.  
  69. typedef struct mopReqLoad {
  70.     unsigned char    loadNum;    /* Load being requested. */
  71.     unsigned char    error;        /* Error status. */
  72. } mopReqLoad;
  73.  
  74. typedef struct mopRunning {
  75.     unsigned char    devType;    /* Requesting system type. */
  76.     unsigned char    mopVer;        /* Version of MOP format. */
  77.     char         memSize[4];    /* Size of phys mem. */
  78.     unsigned char    features;    /* System features. */
  79. } mopRunning;
  80.  
  81. typedef struct mopDump {
  82.     char        memAddr[4];    /* Starting address. */
  83.     char        data;        /* The data. */
  84. } mopDump;
  85.  
  86. typedef struct mopParamLoad {
  87.     unsigned char    loadNum;    /* Load being requested. */
  88.     char        parameters;    /* A bunch of parameters. */
  89. } mopParamLoad;
  90.  
  91. #define fprintEth(file,x) fprintf(file,"%2.2x.%2.2x.%2.2x.%2.2x.%2.2x.%2.2x",\
  92.     x[0], x[1], x[2], x[3], x[4], x[5]);
  93.